One essential value of electronic spreadsheets is to organize data into columns and rows, while automating tedious calculations. A typical, common, and valuable example of such a set of data organized into columns and rows is a range of cells. Even if a range of cells receives a formal and strict definition within electronic spreadsheet environments, it is flexible enough so that information can be included in either a single range of cells or in a set of several ranges of cells. Ranges of cells therefore are quite useful objects. A range of cell can be defined and processed as a whole entity. For example it can be copied from one place to another place within the spreadsheet or from one spreadsheet file to another spreadsheet file. Ranges of cells are widely used in applications developed in the field of electronic spreadsheets. Most often, the ranges of cells are arranged according to some kind of structure, thus becoming structured ranges of cells. The contents of each cell is defined within an element, where an element is defined as a row of a structured range of cells, and then the same kind of element is repeated a certain number of times, to store/process a variable number of information pieces. Most of the time, several instances of similar structured ranges of cells are used. In the current context where no other tool is really available, instances of such similar structured ranges of cells are frequently created through cut/copy and paste operations. In order to keep a high level of intellectual control over growing quantities of information, human being needs to organize or structure this information. The hierarchical model is often used, because allowing nested structures. A typical and well known example of such a hierarchical structure is the directory tree of computer Operating Systems, such as DOS or Microsoft Windows. The root directory may contain files and/or a number of directories, which may themselves contain files and/or a number of directories, which may themselves contain files and/or a number of directories, etc. Recursivity help structure the information and maintain intellectual control over it. This need for recursivity applies as well, in spreadsheet environment to structured ranges of cells. When several instances of structured ranges of cells are defined and used in an electronic spreadsheet file, they are often themselves structured according to a specific superstructure arrangement or “array of structured ranges of cells” which can be duplicated between different electronic spreadsheet files or even within a single electronic spreadsheet file. Within such an array of structured ranges of cells, it is common to find several structured ranges of cells which follow the same intermediate superstructure, and also some other structured ranges of cells following other intermediate superstructures. The array of structured ranges of cells may then be viewed as a set of aggregated intermediate superstructures of structured ranges of cells. In the current context of conventional electronic spreadsheets, instances of such arrays of structured ranges of cells are frequently created through cut/copy and paste operations.
Creating a new instance of a structured range of cells is complex and lengthy, particularly because a conventional range of cells shows strong limitations:                (i) structure information (such as number of columns, number of rows), format information (such as font style, color or border), and contents information (such as formulas or raw— or informative—data) are mixed,        (ii) the size of the range of cell is fixed at a given instant.        
Therefore, when a spreadsheet user wants to create another range of cells with an identical structure, he/she needs to perform successively several operations. He/she needs to:    1. copy-paste an existing structured range of cells,    2. distinguish between areas containing raw— or informative—data and areas containing generic content such as formulas,    3. empty the copied structured range of cells of the copied raw data while trying to keep the structure, format and generic contents,    4. adjust the size of the structured copied range of cells to his new needs.    5. eventually, fill the raw data area with default values, in order to ease subsequent data entry.
Furthermore, before copying and pasting a structured range of cells, the user must prepare the place for the copied structured range of cells, with the risk of overwriting, and therefore loosing the preexisting information at the destination location. This chain of operations rapidly becomes tedious, lengthy and prone to error, especially when manipulated structured ranges of cells increase in size and complexity.
Updating a structured range of cells is also very often complex, lengthy and prone to error. Such updates include additions of new elements and modifications of existing elements. Several types of modifications can be performed without any specific problem in an electronic spreadsheet environment. However, this is not the case for some modifications, for instance for insertions. For example, if a row is added by means of a conventional function such as the spreadsheet row insertion method, the created row will be empty. This means that the value for every cell of every element needs to be entered. Entering data or executing copy/paste operations represents an important workload for the user, while the content of each element is known to a certain extent, and should follow the general structure of the structured range of cells. Moreover, normal spreadsheet functions such as the row insertion function may jeopardize the contents of some neighbour elements. A good example of an insertion jeopardising neighbour elements is the insertion of a row in a range of cells in which, on every row, a cell such as C17 or more generally (Cn), is pointing to a cell in the previous row, through a formula such as C16+B17, or more generally (Cn−1)+(Bn). After row insertion between rows 16 and 17, the formula in cell C18 becomes C16+B18 instead of the generic formula C17+B18, or more generally after row insertion between rows (n−1) and (n), the formula in cell (Cn+1) becomes (Cn−1)+(Bn+1) instead of the generic formula (Cn)+(Bn+1). As a second exemple, there are cases where modifications must be done consistently throughout the structured range of cells. Today, this can only be done using specific copy-paste operations applied to the exact area to be modified. This may prove to be very difficult, especially when manipulated structured ranges of cells increase in size and complexity.
Deleting an element of a structured range of cells is an operation prone to error. As a matter of fact, normal spreadsheet functions such as the row deletion function may jeopardize the contents of some neighbour elements, leading to unresolved references (#REF results) or, even worse to wrong formulas that may be difficult to identify. Solving this problem requires additional “context intelligence”, taking into account the structure of the structured range of cells in which the element deletion occurs. Another need appears at the time the user invokes the conventional Delete function after selection in the spreadsheet of one or a plurality of cells. If the selection belongs to a structured range of cells, calling the Delete function by means of a menu or by pressing the “Delete” key, leaves room to ambiguity as to what the user wants to perform. Removing this ambiguity can only be done today by selecting the exact area to be deleted, which may prove to be very difficult, especially as manipulated structured ranges of cells increase in size and complexity. Solving this problem requires additional “context intelligence” to detect this situation, take advantage of the structure of the structured range of cells and offer the relevant choice to the user.
When recusivity is involved, creating a new instance of an array of structured ranges of cells is even more complex and lengthy, particularly because an array of structured range of cells involves a twofold level of structure:                At the lower level a set of multiple, and even different, instances of structured ranges of cells must be created. As previously mentioned, this operation is itself complex, lengthy and prone to error due to the limitations of conventional ranges of cells.        At the higher level, the creation of an instance of an array of structured range of cells would require that the spreadsheet user carry on several operations:                    1. Identify an existing instance of an array of structured ranges of cells, used as a reference for creating the new instance.            2. Prepare the place, at the destination location, to hold the new instance, at the risk of possibly overwriting, and then loosing, any pre-existing information.            3. Copy-Paste the reference instance of the array of structured range of cells onto the destination location.            4. Adjust the structure of the newly created instance of an array of structured ranges of cells to his/her new needs, by either deleting or introducing within the array one or several intermediate superstructures of instances of structured ranges of cells.            5. Clean the content of each instance of structured ranges of cells comprised within the array.            6. Eventually fill each instance of structured ranges of cells with the relevant default values.                        
Deleting an object comprised in an instance of an array of structured ranges of cells is an operation prone to error. Besides the aforementioned risk of creating unresolved references when individual cells or ranges of cells are deleted, the conventional tools available in electronic spreadsheet environments are not keen to assist the spreadsheet user when a deletion operation is invoked after selection of a range of cells, in a recursive structure. Indeed if such a selected range of cells belongs to an instance of an array of structured ranges of cells, the scope of the deletion operation remains ambiguous: either deleting the contents of the IN fields belonging to the selected range of cells, or deleting the elements of the instance of the structured range of cells overlapping with the selected range of cells, or deleting the instances of structured ranges of cells overlapping with the selected range of cells, or even deleting the whole instance of the array of structured ranges of cells comprising the selected range of cells. To remove this ambiguity, the spreadsheet user has to carefully identify and then select the exact relevant range of cells so that the deletion operation exactly matches his needs. When the array of structured ranges of cells becomes large and complex, the previous operation becomes clearly difficult and prone to error. Solving this problem requires further additional “context intelligence” to detect this situation, take advantage of the twofold level of structure of the array of structured ranges of cells and offer the relevant choice to the user. U.S. Pat. No. 5,033,009 entitled “System for generating worksheet files for electronic spreadsheets” Steven J. Dubnoff, Mar. 3, 1989, is an interesting document of prior art. This invention develops the concepts of pattern data and variable data that may be integrated to generate a worksheet file through a worksheet file generator. However, this invention shows many limitations preventing it from solving the set of issues presented here above and, in particular:                It aims at producing a new output spreadsheet from a set of two input files, while there is a need, within a user application environment, to create and manipulate new entities within an existing electronic spreadsheet file, that the user is familiar with.        It contains no mechanism allowing the direct update of the output spreadsheet, other than the regular spreadsheet tool.        It contains no capability to manipulate within the same spreadsheet file, a variable number of different structures and a variable number of instances of each of those structure. The granularity is limited to the spreadsheet file, while the required granularity is that of a structured range of cells.        The so called “file format specification” really mixes structure information (such as number and relative position of columns and rows), presentation information (such as font, color, background, etc.), contents information (such as formulas, etc.).        